package org.ydsw.data.manage.service;

import org.springframework.stereotype.Service;
import org.ydsw.data.manage.entity.PageVo;
import org.ydsw.data.manage.entity.ScheduleJobEntity;

import java.util.List;

/**
 * @author admin
 * @date 2021年01月07日
 */
@Service
public interface ScheduleJobService {

    /**
     * 分页查询列表
     * @param pageNum
     * @param pageSize
     * @param scheduleJobEntity
     * @return
     */
    PageVo<ScheduleJobEntity> queryPage(Integer pageNum, Integer pageSize, ScheduleJobEntity scheduleJobEntity);

    /**
     * 根据ID，查询定时任务
     *
     * @param jobId
     * @return entity
     */
    ScheduleJobEntity queryEntity(Long jobId);

    /**
     * 查询有效状态的任务集合
     * @return
     */
    List<ScheduleJobEntity> queryList();

    /**
     * 保存定时任务
     *
     * @param scheduleJob scheduleJob
     */
    void save(ScheduleJobEntity scheduleJob);

    /**
     * 更新数据清除策略
     * @param scheduleJobEntity
     */
    void updateScheduleJobEntity(ScheduleJobEntity scheduleJobEntity);

    /**
     * 更新定时任务
     *
     * @param scheduleJob scheduleJob
     */
    void update(ScheduleJobEntity scheduleJob);

    /**
     * 批量删除定时任务
     *
     * @param jobIds
     */
    void deleteBatch(Long[] jobIds);

    /**
     * 立即执行任务
     *
     * @param jobIds jobIds
     */
    void run(Long[] jobIds);

    /**
     * 暂停运行任务
     *
     * @param jobIds jobIds
     */
    void pause(Long[] jobIds);

    /**
     * 恢复运行任务
     *
     * @param jobIds jobIds
     */
    void resume(Long[] jobIds);

}
